Std LinkMake/fr

Std Créer un lien

Emplacement du menu
Aucun
Ateliers
Tous
Raccourci par défaut
Aucun
Introduit dans la version
0.19
Voir aussi
Std Part, Std Groupe, PartDesign Corps

Description

Std Créer un lien crée une classe App Link (App::Link), un type d'objet faisant référence ou lié à un autre objet, dans le même document ou dans un autre document. Il est spécialement conçu pour dupliquer efficacement un seul objet plusieurs fois, ce qui permet de créer des assemblages complexes à partir de sous-assemblages plus petits et de plusieurs composants réutilisables tels que des vis, des écrous et des éléments de fixation similaires.

L'objet App Link a été nouvellement introduit dans la v0.19. Auparavant, une simple duplication d'objets pouvait être réalisée avec Draft Cloner, mais c'est une solution moins efficace en raison de son implémentation qui crée essentiellement une copie de la forme interne de l'objet source. Au lieu de cela, un lien fait directement référence à la forme d'origine, ce qui permet d'économiser de la mémoire.

En lui-même, l'objet Link peut se comporter comme un tableau dupliquant son objet de base plusieurs fois. Cela peut être fait en définissant sa propriété DonnéesElement Count sur 1 ou plus. Cet objet "Réseau lien" peut également être créé avec les différents outils de tableau de l' atelier Draft, par exemple Draft Réseau orthogonal, Draft Réseau polaire, et Draft Réseau circulaire.

Lorsqu'ils sont utilisés avec l' atelier PartDesign, les liens sont destinés à être utilisés avec PartDesign Corps. Il est donc recommandé de définir VueDisplay Mode Body sur Tip pour sélectionner les caractéristiques du corps entier et non les fonctions individuelles. Pour créer des tableaux des PartDesign Features internes, utilisez PartDesign Répétition linéaire, PartDesign Répétition circulaire et PartDesign Transformation multiple.

L'outil Std Créer un lien n'est pas défini par un atelier particulier mais par le système de base. De ce fait il se trouve donc dans Barre d'outils Structure qui est disponible dans tous les ateliers. L'objet Link, utilisé en conjonction avec Std Part pour regrouper divers objets, constitue la base des ateliers Assembly3 et Assembly4.

Utilisation

Avec sélection :

  1. Sélectionnez un objet dans la vue en arborescence ou la vue 3D pour lequel vous souhaitez créer un lien.
  2. Appuyez sur le bouton Std Créer un lien. L'objet créé a la même icône que l'objet d'origine mais a une flèche superposée indiquant qu'il s'agit d'un lien.

Sans sélection :

  1. Si aucun objet n'est sélectionné, appuyez sur le bouton Std Créer un lien pour créer un lien vide .
  2. Allez dans l'éditeur de propriétés, puis cliquez sur la propriété DonnéesLinked Object pour ouvrir la fenêtre de dialogue de sélection des liens pour choisir un objet, puis appuyez sur OK .
  3. Au lieu de choisir un objet entier dans la vue en arborescence, vous pouvez également choisir des sous-éléments (sommets, arêtes ou faces) d'un seul objet dans la vue 3D. Dans ce cas, le lien dupliquera uniquement ces sous-éléments et la superposition de flèches sera différente. Cela peut également être fait avec Std Créer un sous-lien.

(1) Un objet, (2) un lien vide, (3) un lien complet vers le premier objet (avec un matériau de remplacement), et (4) un lien vers seulement quelques sous-éléments de l'objet. Le lien vide n'est pas lié à l'objet réel et n'est donc pas affiché dans la vue 3D.

Utilisation : documents externes

  1. Commencez par un document contenant au moins un objet qui sera la source du lien.
  2. Ouvrez un nouveau document ou un document existant. Pour une manipulation plus facile, utilisez Std Arborescence Tous les documents pour afficher les deux documents dans la vue en arborescence. Avant de continuer, sauvegarder les deux documents. Le lien ne pourra pas trouver sa source et sa cible à moins que les deux documents ne soient enregistrés sur le disque.
  3. Dans le premier document, sélectionnez l'objet que vous souhaitez lier, puis changez d'onglet dans la zone de vue principale pour passer au deuxième document.
  4. Appuyez sur Std Créer un lien. L'objet produit a la même icône que l'objet d'origine mais a une flèche superposée indique qu'il s'agit d'un lien provenant d'un document externe.

Remarques :

  • Lors de l'enregistrement du document avec le lien, il sera demandé également de sauvegarder le document source qui contient l'objet d'origine.
  • Pour inclure l'objet d'origine dans le document avec le lien, utilisez Std Importer des liens ou Std Importer tous les liens.
  • Std Créer un lien peut être utilisé sur un objet Link existant afin de créer un lien vers un lien qui résout finalement l'objet original dans le document source. Cela peut être réalisé avec Std Créer un sous-lien pour ne sélectionner que certains sous-éléments également.

(1, 2) Deux objets d'un document source liés à un document cible, (3) un lien vers le deuxième lien (avec un matériau de remplacement) et (4) un lien vers les sous-éléments du deuxième lien.

Glisser-déposer

Au lieu de changer d'onglet de document, vous pouvez créer des liens en effectuant une opération de glisser-déposer dans la vue en arborescence : sélectionnez l'objet source dans le premier document, faites-le glisser, puis déposez-le dans le nom du second document tout en maintenant la touche Alt du clavier.

Le glisser-déposer entraîne différentes actions en fonction de la touche de modification enfoncée.

Pour les modificateurs Ctrl et Alt, le glisser-déposer peut également être effectué avec un seul document. Autrement dit, faire glisser un objet et le déposer dans le même nom de document peut être utilisé pour créer plusieurs copies ou plusieurs liens vers celui-ci.

Copy on change

The Copy on change feature allows a Link to start as a lightweight reference and then fork into an independent object when specific modifications are made. This follows a "copy-on-write" philosophy, ensuring that variants only consume memory and file space when they actually diverge from the original (see original announcement on the FreeCAD forum).

Property selection

For this mechanism to work, specific properties on the Source object must be marked as eligible for copying.

  • In the Property View, right-click a property and select Status → CopyOnChange.
  • When this status is active, any Link pointing to this object will monitor that property for changes. The exact behavior is defined by the Link's DonnéesLinkCopyOnChange property.

Workflow

The behavior of the Link is controlled by its DonnéesLinkCopyOnChange property:

  • Disabled (Default): the Link acts as a pure proxy. Any change to a property (including those marked as "CopyOnChange") is passed through to the original source object. It remains a lightweight reference. This relationship is still bidirectional at this point: changing a property on the Source object will also change it on the Link.
  • Enabled: this is a latent monitoring state.
    • As long as only the Source is modified, the Link will track those changes and stay in sync.
    • The moment a "CopyOnChange" property is modified directly on the Link, the Link triggers a one-off deep copy, including the source object and its dependencies. It creates an internal, independent version of the source object with the new values. The connection to the Source has been severed, and the Link is no longer a lightweight reference. The Link’s status automatically switches to Owned.
  • Owned: this indicates the Link has "taken ownership" of its data. It now possesses its own independent model and geometry. This state is generally set by the software once the deep copy has happened, but:
    • Manual trigger: the user can manually switch a Link from Enabled to Owned to force an immediate deep copy of the original model based on its current configuration.
  • Tracking: a connected synchronization mode where the Link possesses its own copy but attempts to keep non-modified properties in sync with future edits made to the original.

These forked Link instances are also sometimes referred to as Variant Links. They can optionally be paired with a spreadsheet to use Configuration Tables.

The status of the DonnéesLinkCopyOnChange property can be modified in the UI in two alternative ways:

  • Select the Link object to modify, either in the Tree View or the 3D View, then use the Property View to change its value.
  • Right-click the Link object in the Tree View, and on its context menu, navigate to the Copy on Change submenu entry. There you can switch between (at this time) Enabled and Tracking.

Setting up the configurable object

The user can control exactly which objects and dependencies to copy when making the variant:

  1. Right click the link with DonnéesLinkCopyOnChange set to Enabled.
  2. Select Setup configurable object context menu entry.
  3. A dialog will pop up to let you choose which object to copy, to potentially exclude dependent or non-relevant objects from the copy.

Shadowing properties

If a Link needs to have a different value than its source for a specific property (even if "CopyOnChange" is not used), a manual override can be performed, whereby the original property is shadowed by a replacement.

If a Link possesses a property with the exact same name and type as one on its source object, the Link will prefer its own local value and stop reading from the source. (see discussion on the FreeCAD forum).

How to add an override in the UI:

  1. Select the Link in the Tree View.
  2. Right-click anywhere in the Property View and select Add property.
  3. Choose the Type and enter the Name to match the property you wish to override.
  4. The property will now appear in the Link's list with its own independent value. It is no longer shown in green font in the Property View, to indicate this new state.

With this override, Links can still behave as lightweight references without triggering a deep copy. Yet they can selectively use their own independent properties, disconnected from the source object.

Prototype workflow

For projects that require variant links, a two-level structure is recommended:

  1. The inventory (prototypes): create a group at the root of your document to act as an inventory. Place your base parts here. If you need a variation (e.g., a screw with a different length), create a Link to the base part, set its DonnéesLinkCopyOnChange to Enabled (or Owned), and modify the width. This Link is the prototype.
  2. The Instances: use regular (DonnéesLinkCopyOnChange=Disabled) Links that point to the prototypes, to place them in the model.

This is advantageous in terms of:

  • Performance: most instances remain lightweight references to a shared Prototype.
  • Maintenance: if the fundamental design of a part requires changes, only the original source prototype needs to be changed. All instances throughout the project will update automatically.

Groupes

Std Créer un lien peut être utilisé avec des objets Std Part afin de dupliquer rapidement des groupes d'objets positionnés dans l'espace, c'est-à-dire assemblages.

Lien créé à partir d'une Std Part ; les objets ne sont pas dupliqués mais ils sont répertoriés sous le conteneur d'origine et sous le conteneur Lien.

Un Std Groupe ne possède pas de propriété DonnéesPlacement, il ne peut donc pas contrôler la position des objets à l'intérieur de celui-ci. Cependant, lorsque Std Créer un lien est utilisé avec Std Groupe, le lien résultant se comporte essentiellement comme un Std Part et peut également être déplacé dans l'espace.

Lien créé à partir d'un Std Groupe ; les objets ne sont pas dupliqués mais ils sont répertoriés sous le conteneur d'origine et sous le conteneur Lien. Le lien (avec le matériau de remplacement) peut être déplacé dans l'espace, tout comme un Std Part.

Un lien vers un Std Part gardera la visibilité des objets synchronisée avec la Part d'origine. Donc si vous masquez un objet dans un lien, il sera masqué dans tous les liens et dans l'objet d'origine. D'un autre côté, un lien vers un Std Groupe permettra un contrôle indépendant des visibilités.

À gauche : Std Part avec deux objets et deux liens vers la pièce; la visibilité des objets est synchronisée. À droite : Std Group avec deux objets et deux liens vers le groupe. La visibilité des objets est contrôlée indépendamment dans chaque groupe.

Apparence de remplacement

Lorsqu'un lien est créé, par défaut VueOverride Material est false, donc le lien aura la même apparence que l'original DonnéesLinked Object.

Lorsque VueOverride Material est défini sur true, la propriété VueShape Material contrôlera désormais l'apparence du lien.

Quel que soit l'état de VueOverride Material, il est possible de définir chaque apparence des sous-éléments (sommets, arêtes, faces) d'un lien.

  1. Sélectionnez le lien dans la vue en arborescence. Ouvrez le menu contextuel (clic droit) et choisissez Override colors.
  2. Choisissez maintenant les sous-éléments individuels que vous voulez dans la vue 3D, appuyez sur Éditer et modifiez les propriétés, y compris la transparence.
  3. Pour supprimer les attributs personnalisés, sélectionnez les éléments dans la liste et appuyez sur Supprimer.
  4. Lorsque vous êtes satisfait du résultat, appuyez sur OK pour fermer la fenêtre de dialogue.

Remarque : à partir de la v0.19, la coloration des sous-éléments est soumise au Problème de dénomination topologique. Elle doit être effectuée comme dernière étape de modélisation lorsque le modèle n'est plus sensé être modifié.

(1) objet d'origine, (2) un lien avec un matériau de remplacement et (3) un deuxième lien avec des sous-éléments modifiés individuels.

Réseau de liens

Voir aussi : Draft Réseau orthogonal.

Lorsqu'un lien est créé, par défaut, son DonnéesElement Count est 0, donc un seul objet Link sera visible dans la vue en arborescence.

Étant donné que DonnéesShow Element est true par défaut, lorsque DonnéesElement Count est défini sur 1 ou plus, automatiquement plus de liens seront créés sous le premier. Chaque nouveau lien peut être placé à la position souhaitée en modifiant sa propre propriété DonnéesPlacement.

De la même manière, chaque élément du réseau peut avoir sa propre apparence modifiée, soit par les propriétés VueOverride Material et VueShape Material, soit en utilisant le menu Remplacer les couleurs... sur l'ensemble du réseau puis en sélectionnant des faces une par une. Ceci est décrit dans Apparence de remplacement.

(1) objet d'origine, et (2, 3, 4) un réseau Lien avec trois éléments, chacun dans une position différente. Le premier lien a un matériau de remplacement et des faces transparentes, les deux autres ont des couleurs de face personnalisées.

Une fois que vous êtes satisfait de l'emplacement et des propriétés des éléments Liens dans le réseau, vous pouvez changer DonnéesShow Element en false afin de masquer les liens individuels dans la vue en arborescence. Cela présente l'avantage de rendre le système plus réactif, en particulier si vous avez de nombreux objets dans le document.

Lors de la création de ce type de réseau de liens, vous devez placer chacun des éléments manuellement. Cependant, si vous souhaitez utiliser des modèles spécifiques pour placer les copies, vous pouvez utiliser les outils de réseau de l' atelier Draft, comme Draft Réseau orthogonal, Draft Réseau polaire et Draft Réseau circulaire; ces commandes peuvent créer des copies normales ou des copies de lien selon les options au moment de la création.

Visibilité

Lorsque DonnéesShow Element est true et que des éléments individuels sont répertoriés dans la vue en arborescence dans un réseau de liens, chaque lien peut être affiché ou masqué par en appuyant sur la barre Espace du clavier.

Une autre façon de masquer les éléments individuels consiste à utiliser le menu Remplacer les couleurs....

  1. Sélectionnez le réseau, ouvrez le menu Remplacer les couleurs... (clic droit).
  2. Dans la vue 3D, choisissez n'importe quel sous-élément à partir de n'importe quel lien du réseau.
  3. Appuyez sur Caché. Une icône représentant un œil devrait apparaître, indiquant que cet élément a été masqué de la vue 3D. L'objet s'affichera temporairement lorsque le curseur survolera l'icône .
  4. Vous pouvez cliquer sur OK pour confirmer l'opération et fermer la fenêtre de dialogue. Le lien restera caché même s'il est affiché comme visible dans la vue en arborescence.

Fenêtre de dialogue des couleurs des éléments disponibles lors de l'ouverture du menu contextuel d'un objet Lien dans l'arborescence.

Si vous souhaitez restaurer la visibilité de cet élément du réseau, entrez à nouveau dans la fenêtre de dialogue, choisissez l'icône en forme d'œil, puis cliquez sur Supprimer pour supprimer l'état caché et cliquez sur OK pour confirmer et fermez la fenêtre de dialogue. L'élément sera à nouveau visible dans vue 3D.

Lorsque le lien est pour un Std Part ou un Std Groupe, le menu Remplacer les couleurs... fonctionne de la même manière qu'avec les réseaux. Il permet de contrôler la couleur de la face, la couleur de l'objet entier et la visibilité des objets du groupe.

Un Std Part contenant trois objets et un lien vers cette pièce ; dans le lien, (1) le premier objet est rendu invisible, (2) le deuxième objet a des sous-éléments avec des couleurs différentes, (3) le troisième objet entier a une couleur et un niveau de transparence différents.

Propriétés

Un App Link (classe App::Link) est dérivé de App DocumentObject (classe App::DocumentObject). Il a donc les propriétés de base de ce dernier comme DonnéesLabel et DonnéesLabel2.

Voici les propriétés spécifiques disponibles dans l'éditeur de propriétés. Les propriétés masquées peuvent être affichées en utilisant la commande Afficher les propriétés cachées dans le menu contextuel de l'éditeur de propriétés.

Voir Part Feature pour une explication des propriétés énumérées ci-dessous.

Données

Link

  • DonnéesLinked Object (XLink) : indique l'objet source du App Link. Il peut s'agir d'un objet entier ou d'un sous-élément de celui-ci (sommet, arête ou face).
  • DonnéesLink Claim Child (Bool) : revendique l'objet lié en tant qu'enfant.
  • DonnéesLink Transform (Bool) : par défaut false, auquel cas le lien remplace l'emplacement de DonnéesLinked Object. S'il est réglé sur true, le lien sera placé à la même position que DonnéesLinked Object et son placement sera relatif à celui de DonnéesLinked Object. Ceci peut également être réalisé avec Std Créer un sous-lien.
  • Données (Hidden)Link Placement (Placement) : il s'agit d'un décalage appliqué par-dessus DonnéesPlacement de DonnéesLinked Object. Cette propriété est normalement cachée, mais elle apparaît si DonnéesLink Transform est défini sur true, dans ce cas, DonnéesPlacement devient caché.
  • DonnéesPlacement (Placement)
  • DonnéesShow Element (Bool) : par défaut true, auquel cas la vue en arborescence affichera chacunes des copies du lien, tant que DonnéesElement Count vaut 1 ou est plus grand.
  • DonnéesElement Count (IntegerConstraint) : nombre d'éléments. Par défaut 0. Si il vaut 1 ou est supérieur, App Link se comportera comme un tableau et dupliquera plusieurs fois le même DonnéesObjet lié. Si DonnéesShow Elements est true, chaque élément du tableau sera affiché dans la vue en arborescence et chacun pourra avoir son propre DonnéesPlacement modifié. Chaque copie de lien aura un nom basé sur le nom du lien, augmenté de _iN, où N est un nombre commençant par 0. Par exemple, avec un seul Link, les copies seront nommées Link_i0, Link_i1, Link_i2, etc.
  • DonnéesLink Execute (String) : nom de la fonction d'exécution qui sera exécutée pour cet objet Link particulier. La valeur par défaut est 'appLinkExecute'. Définissez-la à 'None' pour la désactiver.
  • Données (Hidden)Colored Elements (LinkSubHidden) : liste des éléments Link dont la couleur a été remplacée.
  • DonnéesLink Copy On Change (Enumeration) :
    • Disabled : désactive la création d'une copie de l'objet lié, déclenchée par une modification de l'une de ses propriétés définies comme CopyOnChange.
    • Enabled : active une copie profonde de l'objet lié si l'une de ses propriétés marquées comme CopyOnChange est modifiée. Une fois la copie profonde effectuée, il n'y aura plus de lien entre l'objet original et l'objet copié. Par conséquent, les modifications apportées à l'objet original ne seront pas répercutées dans les copies. Remarque : il s'agit d'un état provisoire, la copie réelle n'aura lieu que lorsque les propriétés CopyOnChange seront modifiées. Voir l'état de Owned.
    • Owned : indique que l'objet lié a été copié et que la copie appartient au lien. Cet état est défini automatiquement par le lien, et non par l'utilisateur. Le processus est le suivant : si l'état est Enabled et que l'utilisateur modifie les propriétés précédemment définies comme CopyOnChange, l'état passe à Owned. C'est à ce moment-là que le lien effectuera la copie profonde de l'objet lié. Dans cet état, le lien n'essaiera pas de synchroniser les modifications de l'objet lié original avec la copie.
    • Tracking : identique à Enabled, mais la copie sera automatiquement mise à jour en cas de modification de l'objet source d'origine.
  • Données (Hidden)Link Copy On Change Source (XLink) : l'objet source copié en cas de changement.
  • Données (Hidden)Link Copy On Change Group (Link) : lié à un objet de groupe interne destiné à contenir les copies en cas de modification.
  • Données (Hidden)Link Copy On Change Touched (Bool) : indique que la copie sur l'objet source de la modification a été modifiée.
  • DonnéesScale (Float) : par défaut 1.0. Il s'agit d'un facteur permettant une mise à l'échelle uniforme dans chaque direction X, Y et Z. Par exemple, un cube de 2 mm x 2 mm x 2 mm, mis à l'échelle par 2.0, donnera une forme de dimensions 4 mm x 4 mm x 4 mm.
  • Données (Hidden)Scale Vector (Vector) : le facteur d'échelle de chaque composant (X, Y, Z) pour tous les éléments Link lorsque DonnéesElement Count est 1 ou plus. Si DonnéesScale est différent de 1.0, cette même valeur sera utilisée dans les trois composantes.
  • DonnéesScale List (VectorList) : le facteur d'échelle pour chaque élément Link.
  • DonnéesVisibility List (BoolList) : l'état de visibilité de chaque élément Link.
  • DonnéesPlacement List (PlacementList) : l'emplacement de chaque élément Link.
  • Données (Hidden)Element List (LinkList) : la liste des éléments Link.
  • Données (Hidden)_ Link Touched (Bool) : à définir.
  • Données (Hidden, ReadOnly)_ Child Cache (LinkList) : à définir.
  • Données (Hidden)_ Link Owner (Integer) : à définir.

Base

L'objet App Link affichera en plus les propriétés de l'objet lié DonnéesLinked Object d'origine, ainsi l'éditeur de propriétés peut avoir des groupes de propriétés comme Attachment, Box, Draft, etc.

Vues

Link

Base

Options d'affichage

Selection

Il montrera en outre les propriétés de vue de l'original DonnéesLinked Object.

Héritage

Un App Link est formellement une instance de la classe App::Link, dont le parent est le App DocumentObject (classe App::DocumentObject). C'est un objet de très bas niveau, qui peut être utilisé avec la plupart des autres objets de document.

Schéma simplifié des relations entre les objets principaux du programme. L'objet App::Link est un composant central du système, il ne dépend d'aucun atelier, mais il peut être utilisé avec la plupart des objets créés dans tous les ateliers.

Script

Voir Part Feature pour plus d'informations.

Un lien d'application est créé avec la méthode addObject() du document. Il peut définir son DonnéesLinked Object en remplaçant son attribut LinkedObject, ou en utilisant sa méthode setLink.

import FreeCAD as App

doc = App.newDocument()
bod1 = App.ActiveDocument.addObject("Part::Box", "Box")
bod2 = App.ActiveDocument.addObject("Part::Cylinder", "Cylinder")
bod1.Placement.Base = App.Vector(10, 0, 0)
bod2.Placement.Base = App.Vector(0, 10, 0)

obj1 = App.ActiveDocument.addObject("App::Link", "Link")
obj2 = App.ActiveDocument.addObject("App::Link", "Link")

obj1.LinkedObject = bod1
obj2.setLink(bod2)
obj1.Placement.Base = App.Vector(-10, -10, 0)
obj2.Placement.Base = App.Vector(10, -10, 0)
obj1.ViewObject.OverrideMaterial = True
App.ActiveDocument.recompute()

Le App::Link de base n'a pas d'objet Proxy, il ne peut donc pas être entièrement utilisé pour la sous-classification.

Par conséquent, pour la sous-classification Python, vous devez créer l'objet App::LinkPython.

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::LinkPython", "Link")
obj.Label = "Custom label"

Property shadowing example. Note that the appLinkExecute function will be executed for any link at creation time.

def appLinkExecute(self, obj, linkObj, index, linkElement)
  properties = linkObj.PropertiesList
  # This is assuming all these properties you want to add exists in obj
  # You don't need to hide the original property. The action of adding a property of the same name will hide the linked property.
  for prop in [ ("XYZ", "MNO", "PQR" ]:
    if prop not in properties:
      linkObj.addProperty(obj.getTypeIdOfProperty(prop), prop, obj.getGroupOfProperty(prop))
      
   # now do what you like to calculate the placement using these properties through linkObj
   # linkObj.Placement = linkObj.XYZ.bla bla bla

Lecture complémentaire

Si vous souhaitez passer outre les détails historiques, rendez-vous sur le site introduction aux liens orientée vers l'utilisateur.

L'objet App Link a été introduit après 2 ans de développement et de prototypage. Ce composant a été pensé et développé presque seul par l'utilisateur realthunder. Les motivations et les implémentations de conception derrière ce projet sont décrites dans sa page GitHub, Link. Afin d'accomplir cette fonctionnalité, plusieurs modifications fondamentales de FreeCAD ont été apportées; ceux-ci ont également été largement documentés dans Core-Changes.

Le projet App Link a démarré après que la refonte de l'atelier PartDesign s'est terminée dans la v0.17. L'histoire d'App Link peut être retracée à certains fils de discussion essentiels du forum :

Enfin, le pull request et le merge ont eu lieu :

D'autres "liens" divers à propos de Link incluent :